home *** CD-ROM | disk | FTP | other *** search
/ Scene 96 / Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso / misc / coding / pump_src / setup / hexconve.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1994-07-04  |  3.2 KB  |  95 lines

  1. {****************************************************************************}
  2. {                                                                            }
  3. { MODULE:         HexConversions                                             }
  4. {                                                                            }
  5. { DESCRIPTION:    Implements data conversion functions number -> string.     }
  6. {                                                                            }
  7. { AUTHOR:         Juan Carlos ArĂ©valo                                        }
  8. {                                                                            }
  9. { MODIFICATIONS:  Nobody (yet ;-).                                           }
  10. {                                                                            }
  11. { HISTORY:        01-Oct-1992 First documentation.                           }
  12. {                 17-Oct-1992 Documentation finished.                        }
  13. {                 24-Nov-1993 Added longint support.                         }
  14. {                                                                            }
  15. { (C) 1992 VangeliSTeam                                                      }
  16. {____________________________________________________________________________}
  17.  
  18. {$O+,F+}
  19.  
  20. UNIT HexConversions;
  21.  
  22. INTERFACE
  23.  
  24. TYPE
  25.   THexPString = STRING[9]; { Hex POINTER string. }
  26.   THexLString = STRING[8]; { Hex LONG    string. }
  27.   THexWString = STRING[4]; { Hex WORD    string. }
  28.   THexBString = STRING[2]; { Hex BYTE    string. }
  29.   THexNString = CHAR;      { Hex nibble  string. }
  30.  
  31.  
  32.  
  33.  
  34. FUNCTION HexPtr  (p: POINTER) : THexPString; { Converts POINTER to hexadecimal. }
  35. FUNCTION HexLong (l: LONGINT) : THexLString; { Converts WORD    to hexadecimal. }
  36. FUNCTION HexWord (w: WORD)    : THexWString; { Converts WORD    to hexadecimal. }
  37. FUNCTION HexByte (b: BYTE)    : THexBString; { Converts BYTE    to hexadecimal. }
  38. FUNCTION HexDigit(d: BYTE)    : THexNString; { Converts nibble  to hexadecimal. }
  39.  
  40.  
  41.  
  42.  
  43. IMPLEMENTATION
  44.  
  45.  
  46.  
  47.  
  48. {----------------------------------------------------------------------------}
  49. { Hex conversion routines.                                                   }
  50. {____________________________________________________________________________}
  51.  
  52. CONST
  53.   HexTabla : STRING[16] = '0123456789ABCDEF'; { Hex chars table. }
  54.  
  55.  
  56. FUNCTION HexPtr(p: POINTER) : THexPString;
  57.   BEGIN
  58.     HexPtr := HexWord(SEG(p^)) + ':' + HexWord(OFS(p^));
  59.   END;
  60.  
  61.  
  62. FUNCTION HexLong(l: LONGINT) : THexLString;
  63.   BEGIN
  64.     HexLong := HexWord(SEG(POINTER(l)^)) + HexWord(OFS(POINTER(l)^));
  65.   END;
  66.  
  67.  
  68. FUNCTION HexWord(w: WORD) : THexWString;
  69.   BEGIN
  70.     HexWord[0] := #4;
  71.     HexWord[1] := HexTabla[ (w SHR 12)         + 1];
  72.     HexWord[2] := HexTabla[((w SHR  8) AND $F) + 1];
  73.     HexWord[3] := HexTabla[((w SHR  4) AND $F) + 1];
  74.     HexWord[4] := HexTabla[( w         AND $F) + 1];
  75.   END;
  76.  
  77.  
  78. FUNCTION HexByte(b: BYTE) : THexBString;
  79.   BEGIN
  80.     HexByte[0] := #2;
  81.     HexByte[1] := HexTabla[((b SHR  4) AND $F) + 1];
  82.     HexByte[2] := HexTabla[( b         AND $F) + 1];
  83.   END;
  84.  
  85.  
  86. FUNCTION HexDigit(d: BYTE) : THexNString;
  87.   BEGIN
  88.     HexDigit := HexTabla[(d AND $F) + 1];
  89.   END;
  90.  
  91.  
  92.  
  93.  
  94. END.
  95.